package com.som.beanconvert.data2.input;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.ss.usermodel.Row;

import com.som.bean.data2.input.CompDataInput;
import com.som.beanconvert.ExcelDataParseInputInf;
import com.som.beanconvert.ExcelRowDataParseProcessInf;
import com.som.util.ExcelCellStrGet;
import com.som.util.IpAddressUtil;

/**
 * 全量IP地址(输入文件名为input1.xls),此文件即为需求一：设备采集数据和资管系统数据比对的输出结果1, 输入列为: IP地址
 * 路由(network) 网元信息 区县
 * 
 * 进行数据的从excel转换到java对象
 * 
 * @author liujun
 * @date 2016年4月8日
 * @verion 0.0.1
 */
public class CompDataExcelInput extends CompDataInput implements ExcelDataParseInputInf<CompDataInput>, ExcelRowDataParseProcessInf<String, CompDataInput>
{

	public Map<String, CompDataInput> parseRowDataProcess(CompDataInput t)
	{
		// 将ip段转化为ip
		List<String> ipList = IpAddressUtil.getIpListBySecation(t.getIpaddress(), t.getIpEnd());

		if (null != ipList && !ipList.isEmpty())
		{
			Map<String, CompDataInput> resultMap = new LinkedHashMap<String, CompDataInput>();

			for (String ipaddress : ipList)
			{
				resultMap.put(ipaddress, t);
			}

			return resultMap;
		}

		return null;
	}

	public CompDataInput parseBean(Row excelRow)
	{

		CompDataInput result = new CompDataInput();

		HSSFRow row = (HSSFRow) excelRow;

		// IP地址开始
		HSSFCell cellip = row.getCell(0);
		result.setIpaddress(ExcelCellStrGet.getCellValue(cellip));

		// IP地址结束
		HSSFCell cellEnd = row.getCell(1);
		result.setIpEnd(ExcelCellStrGet.getCellValue(cellEnd));

		// 用户信息
		HSSFCell cellName = row.getCell(2);
		result.setUserName(ExcelCellStrGet.getCellValue(cellName));

		return result;

	}

}
